/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package gradius.InterfaceGrafica;

import java.awt.Graphics;
import java.awt.Graphics2D;
import java.util.ArrayList;
import java.util.Random;

/** Classe que printa as imagens no cenário
 *
 * @author Eduardo
 */
public final class BackGroundPainter
{
    private TelaGrafica tela;
    private ArrayList<BackGroundImage> cenario;
    private ArrayList<BackGroundImage> elementos;
    private Random rand;

    /** Construtor da classe BackGroundPrinter
     *
     * @param tela - tela do jogo
     * @param cenario - cenario atual
     * @param elementos - elementos que estarão no cenário
     */
    public BackGroundPainter(TelaGrafica tela, ArrayList<BackGroundImage> cenario, ArrayList<BackGroundImage> elementos)
    {
        this.tela=tela;
        this.cenario = cenario;
        this.elementos = elementos;
        rand = new Random();
        int j=0;
        for (int i=0; i<cenario.size(); i++)
        {
            cenario.get(i).coordenada.setCoordX(j);
            j+=768;
        }
    }

    /** Método que desenha os elementos na tela
     * @param g - Objeto Graphics2D para desenho
     */
    public void Paint(Graphics2D g2)
    {
        for (int i=0; i<cenario.size(); ++i)
        {
            g2.drawImage(cenario.get(i).getImage(), cenario.get(i).coordenada.getCoordX(), cenario.get(i).coordenada.getCoordY(), tela);
            cenario.get(i).coordenada.incrementaCoordenada(cenario.get(i).getVelocidade(), 0);
        }

        for (int i=0; i<elementos.size(); ++i)
        {
            g2.drawImage(elementos.get(i).getImage(), elementos.get(i).coordenada.getCoordX(), elementos.get(i).coordenada.getCoordY(), tela);
            elementos.get(i).coordenada.incrementaCoordenada(elementos.get(i).getVelocidade(), 0);
        }

        for (int i=0; i<cenario.size(); ++i)
        {
            if (cenario.get(i).coordenada.getCoordX() == -768)
            {
                cenario.get(i).coordenada.setCoordX((cenario.size()-1)*768);
            }
        }
    }
}
